package 中等.贪心思想;

import java.util.Arrays;

/**
 * 有 3n 堆数目不一的硬币，你和你的朋友们打算按以下方式分硬币：
 * 每一轮中，你将会选出 任意 3 堆硬币（不一定连续）。
 * Alice 将会取走硬币数量最多的那一堆。
 * 你将会取走硬币数量第二多的那一堆。
 * Bob 将会取走最后一堆。
 * 重复这个过程，直到没有更多硬币。
 * 给你一个整数数组 piles ，其中 piles[i] 是第 i 堆中硬币的数目。
 * <p>
 * 返回你可以获得的最大硬币数目。
 *
 * @ https://leetcode.cn/problems/maximum-number-of-coins-you-can-get/description/?envType=daily-question&envId=2025-01-22
 * @date 2025/01/22
 */
public class 你可以获得的最大硬币数目_1561 {

    public static void main(String[] args) {

    }

    /**
     * 贪心思想
     * 先排序，每一轮，Alice 选最大的，我取第二大的，Bob取最小的
     */
    public int maxCoins(int[] piles) {
        int ans = 0;
        Arrays.sort(piles);

        int left = 0, right = piles.length - 1;
        while (left < right) {
            ans += piles[right - 1];
            right -= 2;
            left += 1;
        }
        return ans;
    }

}
